"""
字符串：

    字符串运算符：
        +：字符串连接
        *：重复输出字符串
        []：通过索引获取字符串中字符
        [:]：截取字符串中的一部分，遵循左闭右开原则
        in：成员运算符，如果字符串中包含给定的字符返回 True
        not in：成员运算符，如果字符串中不包含给定的字符返回 True
        r/R：所有的字符串都是直接按照字面的意思来使用，没有转义特殊或不能打印的字符
        %：格式字符串

    Python 的字符串内建函数:
    ①：大小写转换
        upper(): 转为全大写
        lower(): 转为全小写
        capitalize(): 首字母大写，其余小写
        title(): 每个单词首字母大写
        swapcase(): 大小写互换
    ②：检测与判断
        startswith(prefix): 是否以指定字符串开头
        endswith(suffix): 是否以指定字符串结尾
        isalnum(): 是否仅由字母或数字组成
        isalpha(): 是否仅由字母组成
        isdigit(): 是否仅由数字组成
        isspace(): 是否全为空白字符（空格、制表符、换行等）
    ③：查找与替换
        find(sub): 返回子字符串首次出现的索引，找不到返回 -1
        index(sub): 类似 find()，但找不到会抛异常
        count(sub): 统计子字符串出现次数
        replace(old, new[, count]): 替换字符串（可指定次数）
    ④：格式化与对齐
        format(): 格式化字符串（灵活的参数替换）
        ljust(width[, fillchar]): 左对齐并用指定字符填充至宽度
        rjust(width[, fillchar]): 右对齐并填充
        zfill(width): 左侧补零至指定宽度（常用于数字格式）
    ⑤：分割与连接
        split(sep=None): 按分隔符分割为列表
        join(iterable): 将可迭代对象中的元素用字符串连接
        splitlines([keepends]): 按换行符分割（可选保留换行符）
    ⑥：去除空白与修剪
        strip([chars]): 去除两侧指定字符（默认去空格）
        lstrip() / rstrip(): 仅去除左侧或右侧字符
    ⑦：其他实用方法
        len(): 获取字符串长度（内置函数）
        in 关键字: 检查子字符串是否存在
        encode(encoding): 转换为字节序列（处理编码时常用）
"""

# 字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。创建字符串很简单，只要为变量分配一个值即可
str1 = "abcdefg"

# 字符串的索引,索引值以 0 为开始值，-1 为从末尾的开始位置
print(str1[0])

# Python 访问子字符串，可以使用方括号 [] 来截取字符串，字符串的截取的语法格式如下：变量[头下标:尾下标]。包含头下标，不包含尾下标
print(str1[1:3])
print(str1[1:6])
print(str1[::-1])

# 字符串的拼接
print(str1 + "hello")
print(str1[:3] + "hi")

# 成员运算符
if "a" in str1:
    print("yes")
else:
    print("no")

# 打印原字符串
print(r"ab\n")

# 字符串格式化
name = "哇哈哈"
age = 19
print("我叫 %s ,今年 %d 岁！" % ("小明", 18))
print(f"我叫{name}，今年 {age} 岁！")
print(f"{1+2}")